home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.3 Development Libraries / SGI IRIX 6.3 Development Libraries.iso / dist6.3 / gl_dev.idb / usr / include / fmclient.h.z / fmclient.h
Encoding:
C/C++ Source or Header  |  1996-12-06  |  5.8 KB  |  214 lines

  1. /*
  2.  * Copyright (c) 1987 by Silicon Graphics, Inc.
  3.  *        Glen Williams
  4.  */
  5.  
  6. /*        The Font Manager Client Interface        */
  7.  
  8. #ifndef FMCLIENT
  9. #define FMCLIENT
  10.  
  11. #ifdef __cplusplus
  12. extern "C" {
  13. #endif
  14.  
  15. typedef long *fmfonthandle;
  16.  
  17. typedef struct fmfontinfo {
  18.     long printermatched;
  19.     long reserved0;
  20.     double matrix00;
  21.     double matrix01;
  22.     double matrix10;
  23.     double matrix11;
  24.     long type;        /* see fmfontinfo->type  below */
  25.     long encoding;
  26.     long fixed_width;
  27.     long xorig;
  28.     long yorig;
  29.     long xsize;
  30.     long ysize;
  31.     long height;
  32.     long nglyphs;
  33.     long bitsdeep;        /* if nonzero, the depth of all glyphs in font */
  34.     long width;        /* the largest setwidth in the font */
  35.     long resolution;
  36.     long weight;        /* [0..1000], the # of black bits that would be on
  37.                    if this were an of 1000-pixel chars */
  38.         long firstcol;
  39.         long lastcol;
  40.         long firstrow;
  41.         long lastrow;
  42.     long padding[26];   /* for future expansion */
  43. } fmfontinfo;
  44.  
  45.  
  46. typedef struct fmglyphinfo {
  47.     long xsize, ysize;        /* dimensions of the glyph in pixels */
  48.     long xorig, yorig;        /* origin */
  49.     float xmove, ymove;        /* move  */
  50.     long gtype;            /* The type of glyph this is. */
  51.     long bitsdeep;            /* depth of the pixels, if pixels */
  52. }fmglyphinfo;
  53.  
  54.  
  55. /* ******************************************************/
  56. /* Overall font information subscripts: fmfontinfo    */
  57. /* ******************************************************/
  58.  
  59. #define FMFPRINTERMATCHED 0
  60. #define FMFMATRIX00 1
  61. #define FMFMATRIX01 2
  62. #define FMFMATRIX10 3
  63. #define FMFMATRIX11 4
  64. #define FMFTYPE        5
  65. #define FMFENCODING 6
  66. #define FMFFIXED_WIDTH 7
  67. #define FMFXORIG 8
  68. #define FMFYORIG 9
  69. #define FMFXSIZE 10
  70. #define FMFYSIZE 11
  71. #define FMFNGLYPHS 12
  72. #define FMFBITSDEEP 13
  73. #define FMFWIDTH 14
  74. #define FMFRESOLUTION 15
  75. #define    FMFWEIGHT 16
  76.  
  77. /* enumeration of fmfontinfo->type */
  78. #define FMBITMAPFONT        0
  79. #define FMWIDTHFONT        1
  80. #define FMPRINTERWIDTHFONT    2
  81. #define FMSPLINEFONT        3
  82. #define FMVECTORFONT        4
  83. #define FMGREYSCALEFONT        5
  84. #define FMRGBFONT        6
  85. #define FMGREEKFONT        7
  86. #define FMPERSPECTIVEFONT   8
  87. #define FMCOLORMAP        9
  88. #define FMMIXED            10
  89.  
  90. /* enumeration of fmfontinfo->encoding */
  91. #define FMASCII        0
  92. #define FMADOBE        1
  93. #define FMJISC6226    2
  94. #define FMCYRILLIC    3
  95. #define FMHANGUL    4
  96. #define FMDEVENAGERI    5
  97. #define FMISO88591    6    /* ISO 8859-1 */
  98. #define FMDECTECH    7    /* DEC DECTECH */
  99. #define FMJISX020819760    8    /* JISX208.1976-0 */
  100. #define FMJISX020119760    9    /* JISX201.1976-0 */
  101. #define FMSUNOLCURSOR1    10    /* SUN OPEN LOOK CURSOR 1 */    
  102. #define FMSUNOLGLYPH1    11    /* SUN OPEN LOOK GLYPH 1 */
  103. #define FMSPECIFIC    12    /* FONT SPECIFIC */
  104. #define FMJISX020819830    13    /* JISX0208.1983-0 */
  105. #define FMKSC560119870    14    /* KSC5601.1987-0 */
  106. #define FMGB231219800    15    /* GB2312.1980-0 */
  107.  
  108. /* *****************************************************/
  109. /* Character glyph information subscripts: fmglyphinfo */
  110. /* *****************************************************/
  111. #define FMXSIZE    0
  112. #define FMYSIZE    1
  113. #define FMXORIG    2
  114. #define FMYORIG    3
  115. #define FMXMOVE    4
  116. #define FMYMOVE    5
  117. #define FMGTYPE    6
  118. #define FMBITSDEEP    7
  119.  
  120.  
  121. /* fmglyphinfo->gtype */
  122. #define FMNOTDEFINED        0
  123. #define FMBITMAPGLYPH        1
  124. #define FMIMAGERGBGLYPH    2
  125. #define FMIMAGECGLYPH        3
  126. #define FMLINEGLYPH        4
  127. #define FMSHAPEGLYPH        5
  128.  
  129. #define FMCACHE_QUANTUM 100000
  130.  
  131. #if defined(__mips) || defined(__STDC__) || defined(__cplusplus)
  132. extern int        fmcachelimit(void);
  133. extern void        fmconcatpagematrix(double [3][2]);
  134. extern void        fmenumerate(void (*callback)(char *));
  135. extern void        fminit(void);
  136. extern char        *fmfontpath(void); /* pass back the path */
  137. extern int        fmgetcacheused(void);
  138. extern void        fminitpagematrix(void);
  139. extern void        fmcacheenable(void);
  140. extern void        fmcachedisable(void);
  141. extern fmfonthandle    fmfindfont(const char *);
  142. extern void        fmfreefont(fmfonthandle);
  143. extern void        fmsetpath(const char *);/* pass in the path */
  144. extern long        fmgetchrwidth(fmfonthandle, const unsigned char);
  145. extern int        fmgetcomment(fmfonthandle, int, char *);
  146. extern int        fmgetfontinfo(fmfonthandle, fmfontinfo *);
  147. extern int        fmgetfontname(fmfonthandle, int len, char *);
  148. extern void        fmgetpagematrix(double [3][2]);
  149. extern long        fmgetstrwidth(fmfonthandle, const char *);
  150. extern long        fmgetwholemetrics(fmfonthandle, fmglyphinfo *);
  151. extern fmfonthandle    fmmakefont(fmfonthandle, double[3][2]);
  152. extern long        fmoutchar(fmfonthandle, const unsigned int);
  153. extern void        fmprintermatch(int);
  154. extern int        fmprstr(const char *);
  155. extern void        fmrotatepagematrix(double);
  156. extern fmfonthandle    fmscalefont(fmfonthandle, double);
  157. extern void        fmsetcachelimit(int);
  158. extern void        fmsetfont(fmfonthandle);
  159. extern void        fmsetpagematrix(double [3][2]);
  160. extern void        fmscalepagematrix(double);
  161. extern int    fmfprstr(fmfonthandle, unsigned char *, short, int, int);
  162.  
  163. #ifdef __cplusplus
  164. /* temporary __cplusplus functions - NOT SUPPORTED */
  165. long        fmOutString(unsigned char *ch, short len, int x, int y);
  166. void        fmForceFixedWidth(fmfonthandle);
  167. #endif
  168.  
  169. #else    /* not __mips and not __STDC__ and not __cplusplus */
  170.  
  171. extern int        fmcachelimit();
  172. extern void        fminit();
  173.  
  174. extern void        fmenumerate();
  175. extern fmfonthandle    fmfindfont();
  176. extern fmfonthandle    fmscalefont();
  177. extern void        fmsetfont();
  178.  
  179. extern void        fmconcatpagematrix();
  180. extern int        fmgetcacheused();
  181. extern void        fmgetpagematrix();
  182. extern void        fminitpagematrix();
  183. extern void        fmrotatepagematrix();
  184. extern void        fmscalepagematrix();
  185. extern void        fmsetcachelimit();
  186. extern void        fmsetpagematrix();
  187.  
  188. extern char        *fmfontpath();
  189. extern void        fmsetpath();
  190. extern void        fmfreefont();
  191.  
  192. extern long        fmgetchrwidth();
  193. extern int        fmgetcomment();
  194. extern int        fmgetfontinfo();
  195. extern int        fmgetfontname();
  196. extern long        fmgetstrwidth();
  197. extern int        fmgetwholemetrics();
  198.  
  199. extern fmfonthandle    fmmakefont();
  200. extern void        fmprintermatch();
  201.  
  202. extern void        fmcacheenable();
  203. extern void        fmcachedisable();
  204. extern long        fmoutchar();
  205. extern int        fmprstr();
  206. extern int        fmfprstr();
  207. #endif
  208.  
  209. #ifdef __cplusplus
  210. }
  211. #endif
  212.  
  213. #endif
  214.